package com.wwg.util.file;

public class FileUtil {
    public static void main(String[] args) {
        // TODO: Add your code here
        FileUtil fileUtil = new FileUtil();
        System.out.println(fileUtil.fileSize("10737418240"));
    }


    public String fileSize(String s1) {
        int iPos = 0;
        StringBuffer sBuf = new StringBuffer();
        try{
            if(s1.trim().compareTo("")==0){
                return "";
            }
            //数字太大，JAVA直接写会无法识别，会引起下面比较失败
            // long g = Long.parseLong("1099511627776");
            //int i = Integer.parseInt(s1);
            double i = Double.parseDouble(s1);

            if(i<=0){
                sBuf.append("");
            }else if(i<1024){
                sBuf.append(i).append(" B");    //四舍五入
                iPos = sBuf.lastIndexOf(".00 B");   
                if(iPos>0){
                    sBuf.delete(iPos,sBuf.length()-2);  
                }
            }else if(i<1024*1024){
                sBuf.append(new java.text.DecimalFormat(".00").format(i/1024)).append(" KB");   //四舍五入
                iPos = sBuf.lastIndexOf(".00 KB");  
                if(iPos>0){
                    sBuf.delete(iPos,sBuf.length()-3);  
                }
            }else if(i<1024*1024*1024){
                sBuf.append(new java.text.DecimalFormat(".00").format(i/(1024*1024))).append(" M"); //四舍五入
                iPos = sBuf.lastIndexOf(".00 M");
                if(iPos>0){
                    sBuf.delete(iPos,sBuf.length()-2);  
                }
            }else{
                sBuf.append(new java.text.DecimalFormat(".00").format(i/(1024*1024*1024))).append(" G");    //四舍五入
                iPos = sBuf.lastIndexOf(".00 G");
                if(iPos>0){
                    sBuf.delete(iPos,sBuf.length()-2);  
                }
            }           
        }catch(Exception e){
            return "";
        }
        return sBuf.toString();
    }
}

